from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect
"""
本文件是作为一个中间件来使用的
中间件是一个过滤器
在前端页面和后端接口中间的一个过滤
本文件用来过滤用户登录的状态
中间件需要在settings文件中激活
"""
# 跟数据库模型一样，需要继承一个中间件的基类
class CheckLoginMV(MiddlewareMixin):
    def process_request(self,request):
        # 设置过滤的白名单，即对哪些路由进行过滤
        verfy_uris = ['/manager/index/']
        # 获取到路由
        current_uri = request.path_info
        # 看获取到的路由是否在需要过滤的路由名单中
        if current_uri in verfy_uris:
            """
            对session进行判断
            从而知道是否处于登录状态
            为了避免获取不到值而报错，我们给他一个空的默认值
            """
            if not request.session.get('user',''):
                # 如果没有获取到session的值，跳转页面
                return redirect('/manager/login/')